关于C#的简单问题请教`!

来源:百度知道 编辑:UC知道 时间:2024/05/13 12:18:11
namespace ch09ex03
{
class MyClass
{
pulish int val;
}
class Program
{
static void main(string[]args)
{
MyClass object A = new Myclass();
MyClass object B = object A;
objectA.val =10;
objectB.val =20;
Console.Writeline("objectA.val={0}",objectA.val);
Console.Writeline("objectB.val={0}",objectB.val);
Console.ReadKey();
}
}
}
请问以上代码输出什么结果,这里写输出 2个结果都是20,详细解析下为什么,谢谢`!

因为C#里的类(class)是一个引用类型,也就是只要你两个class设置了“=”关系,那么你更改其中任何一个,都会将另一个也同时修改,因为它们实际上是指向的同一个内存地址
objectA.val =10; //修改objectA也修改了objectB,都是10
objectB.val =20; //修改objectB也修改了objectA,都是20

所以你的两个结果都是20

上面回答正确

二个都是20

这是考引用类型和值类型的区别
如果这里换成
struct MyClass
{
pulish int val;
}

就是10,20了